The present invention relates to the field of reconciliation of conflicting data base items and, more particularly, to flexible configuration item reconciliation based on data source prioritization and persistent ownership tracking.
Configuration management databases (CMDBs) are extremely useful for allowing information technology (IT) organizations to track, manage, and respond to hardware/software configurations and changes. A common problem facing many CMDBs is the prioritization of attribute data from multiple sources. At the root of the problem is the need to apply detailed control over which data elements should be prioritized from a particular source. One technique currently used is to merely overwrite a data element of a CMDB with a most recent element regardless of source. Another technique is to utilize complex rules and rule sets to compare two different data elements to determine which is a preferred one. Multiple comparisons can be iteratively performed, each of which is generally a comparison of two possible values based upon a rule. This results in computationally expensive processing, which is difficult to implement, understand, and maintain.
Further, real-world situational considerations generally result in extremely complex rule sets, which have a tendency to continuously expand with use. This results in a continuingly escalading complexity, which rapidly becomes outdated and unmanageable. For example, it is not uncommon for some data sources to provide accurate data for a particular set of configuration items, but incorrect or misleading data for other configuration items. For instance, a data source can report a configuration item's hardware configuration accurately, but fail to provide reliable software configuration information. When multiple reconciliation actions (a series of binary comparisons yielding an end result) are performed, each action introduces a possibility of an error, which systems often have a hard time detecting and/or recovering from. That is, a typical corrective measure is to perform a “rollback” database action, which can be overloaded when multiple sequential changes have happened, where an unknown one induced an error. Thus, errors during reconciliation often result in inaccurate or partial data being stored in a database.
Additionally, prioritization rules are often created using programming languages, such as structured query language (SQL), vendor specific languages, specialized business logic, and the like. As such, the rules can be difficult to administer and manage. Generally a complexity of these rules can be beyond an understanding level of a majority of end-users, thus restricting reconciliation configuration to skilled information technology (IT) professionals. As these rules evolve to accommodate more data sources, attributes, and classes, they can quickly grow increasingly complex. Complex rule sets can give rise to unforeseen and unwanted prioritization which can lead to inaccurate or misleading configuration item information being stored. At present, known solutions for these shortcomings have not yet been realized.